查看原文
其他

图像降噪算法介绍及实现汇总

Bihan Wen 极市平台 2019-03-28


↑ 点击蓝字关注极市平台 识别先机 创造未来



文章来源:然而并 - 知乎专栏



图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)


大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你解一个超越方程一样,不借助其他额外的条件信息,是没有唯一解的。


降噪问题(这里只讨论additive noise),用最简单的数学语言一句话就可以描述清楚:y = x + e


y是你观察到的带噪音的图像,e是噪音,x是干净无噪音的图像。只已知y,外加e的概率分布,降噪问题需要你去寻找最接近真实值的x。


说起来降噪问题如此简单明了,但自从信号处理开宗立派起,研究人员一直在孜孜不倦地提出各种降噪算法。我最早也没搞懂,大家何必纠结于这么简单的问题,而不去考虑更复杂,更贴近实际的花哨应用?


然而世间万物的规律,万变不离其中:不管多复杂问题,其本质往往都有简单的起源。而看似简单的问题,往往却是高手一身修行的追求:就好像考察一个书法家功力,看他写一个永字就好;看一个川菜厨师功力,看他做一道开水白菜就好。


科研之道和其他道也类似,简单的任务见到的是这个approach的潜力:这仅仅是起点,而不是终点。一个好的科研者应该要着眼于起点,追求问题的本源,然后拓展到未来,此为道。只追求花哨的应用,拼凑堆叠,舍本求末甚至本末倒置,只能为术。


好吧,扯远了。我就是想说,图像降噪问题,最简单也最困难。


那么要怎么解好这个逆问题呢?


降噪的本质,是要从观测值中分离噪音,保留图像。算法的关键,是要掌握并借助于图像本身独特的性质和结构。具体用什么性质,这个流派就多了,我在这里就先提供一个不完全总结,关于近期的一些好的图像降噪算法。


根据算法利用了什么图像性质,或者用到的手段,我大概把各种算法分成如下几类:

  1. 滤波类

  2. 稀疏表达类

  3. 外部先验

  4. 聚类低秩

  5. 深度学习


我根据我的了解,对于每一个类比总结了一个常见算法列表。


入选的算法要满足:1.近期(05年以后)提出的算法,2.有可复现的代码提供,3.可以得到很好,或者接近state-of-the-art的效果。


由于我的水平有限,希望同行高手来帮这个public repo添砖加瓦。


以下是可复现的图像降噪算法列表,包含了简要的算法介绍,若想了解算法详情,可在该链接中查看:https://github.com/wenbihan/reproducible-image-denoising-state-of-the-art


Filter
  • NLM

A non-local algorithm for e denoising (CVPR 05), Buades et al.

  • BM3D

Image restoration by sparse 3D transform-domain collaborative filtering (SPIE Electronic Imaging 2008), Dabov et al.

  • PID

Progressive Image Denoising (TIP 2014), C. Knaus et al.


Sparse Coding
  • KSVD

Image Denoising Via Sparse and Redundant Representations Over Learned Dictionaries (TIP 2006), Elad et al.

  • LSSC

Non-local Sparse Models for Image Restoration (ICCV 2009), Mairal et al.

  • NCSR

Nonlocally Centralized Sparse Representation for Image Restoration (TIP 2012), Dong et al.

  • OCTOBOS

Structured Overcomplete Sparsifying Transform Learning with Convergence Guarantees and Applications (IJCV 2015), Wen et al.

  • GSR

Group-based Sparse Representation for Image Restoration (TIP 2014), Zhang et al.


Effective Prior
  • EPLL

From Learning Models of Natural Image Patches to Whole Image Restoration (ICCV2011), Zoran et al.

  • GHP

Texture Enhanced Image Denoising via Gradient Histogram Preservation (CVPR2013), Zuo et al.

  • PGPD

Patch Group Based Nonlocal Self-Similarity Prior Learning for Image Denoising (ICCV 2015), Xu et al.

  • PCLR

External Patch Prior Guided Internal Clustering for Image Denoising (ICCV 2015), Chen et al.


Low Rank
  • SAIST

Nonlocal image restoration with bilateral variance estimation: a low-rank approach (TIP2013), Dong et al.

  • WNNM

Weighted Nuclear Norm Minimization with Application to Image Denoising (CVPR2014), Gu et al.

  • Multi-channel Weighted Nuclear Norm

Multi-channel Weighted Nuclear Norm Minimization for Real Color Image Denoising (ICCV 2017), Xu et al.


Deep Learning
  • SF

Shrinkage Fields for Effective Image Restoration (CVPR 2014), Schmidt et al.

  • TNRD

Trainable nonlinear reaction diffusion: A flexible framework for fast and effective image restoration (TPAMI 2016), Chen et al.

  • DnCNN

Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising (TIP2017), Zhang et al.


Combined with High-Level Tasks
  • Meets High-level Tasks

When Image Denoising Meets High-Level Vision Tasks: A Deep Learning Approach (Arxiv2017), Ding Liu, Bihan Wen, Xianming Liu, Thomas S. Huang.


Benchmark
  • Darmstadt

Benchmarking Denoising Algorithms with Real Photographs (CVPR 2017), Tobias Plotz, Stefan Roth.


下面对于这几类算法的一些简略地解释:


滤波类:相对比较传统的一类算法,通过设计滤波器对图像进行处理。特点是速度往往比较快,很多卷积滤波可以借助快速傅里叶变化来加速。近期的一些算法例如BM3D也结合了一些block matching来利用图片的self-similarity,达到了很棒的效果。


稀疏表达类:自然图片之所以看起来不同于随机噪音/人造结构,是因为大家发现他们总会在某一个模型(synthesis model或者analysis model)下存在稀疏表达。而我们想排除的噪音往往无法被稀疏化。基于这个判别式模型(discriminative model),用稀疏性来约束自然图像,在很多逆问题里取得了拔群的效果。


外部先验(external prior):如果从有噪音的图片本身无法找到规律,我们也可以借助其他类似但又没有噪音的图片,来总结图片具有的固有属性。这一类方法利用的外部图片来创造先验条件,然后用于约束需要预测的图片。最有代表性的工作,就是混合高斯模型(Gaussian Mixture Model)。严格来说,基于深度学习的算法也可以归于这个类。


聚类低秩(Low-Rankness):除了可稀疏性,低秩性也是自然图片常见的一个特性。数学上,可稀疏表达的数据可以被认为是在Union of low-dimensional subspaces;而低秩数据则是直接存在于一个Low-dimensional subspace。这个更严格的限制往往也可以取得很好的降噪效果。


深度学习(Deep Learning):这类可以归于外部先验的子类,但由于近期大热,我单独拿出来说说。如果说解决逆问题的关键,是寻找一个好的图像约束器(regularizer),那么我们为什么不用一个最好的约束器?深度学习方法的精髓,就在于通过大量的数据,学习得到一个高复杂度(多层网络结构)的图片约束器,从而将学习外部先验条件这一途径推到极限。近期的很多这类工作,都是沿着这一思路,取得了非常逆天的效果。



- 文章推荐 -

利用卷积自编码器对图片进行降噪



加入极市Email List (http://extremevision.mikecrm.com/pdKKGSx,获取极市最新项目需求,以及前沿视觉资讯等。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存